Liquid Haskell: Haskell as a Theorem Prover